public class Main {


    //枚举
//    //常量
//    public enum Color {
//        RED,GREEN,BLANK,YELLOW
//    }
//    //switch
//    enum Signal {
//        GREEN,YELLOW,RED
//    }
//
//    public class TrafficLight {
//        Signal color = Signal.RED;
//        public void change() {
//            switch (color) {
//                case RED:
//                    color = Signal.GREEN;
//                    break;
//                case YELLOW:
//                    color = Signal.RED;
//                    break;
//                case GREEN:
//                    color = Signal.YELLOW;
//                    break;
//            }
//        }
//    }

//    public enum Color {
//        RED("红色",1),GREEN("绿色",2),BLANK("白色",3),YELLO("黄色",4);
//        private String name;
//        private int index;
//        private Color(String name,int index) {
//            this.name = name;
//            this.index = index;
//        }
//        public static String getName(int index) {
//            for(Color c : Color.values()) {
//                if(c.getIndex() == index) {
//                    return c.name;
//                }
//            }
//            return null;
//        }
//        public String getName() {
//            return name;
//        }
//        public void setName(String name) {
//            this.name = name;
//        }
//        public int getIndex() {
//            return index;
//        }
//        public void setName(int index) {
//            this.index = index;
//        }
//    }
//    public static void main1(String[] args) {
//       System.out.println(Color.getName(2));
//       System.out.println(Color.RED);
//       System.out.println(Color.getName(3));
//
//    }

    //冒泡排序
//    public static void Bubble(int [] array) {
//        for( int i = 0; i < array.length - 1; i++ ) {
//            boolean flag = false;
//            for( int j = 0; j < array.length - 1 - i; j++ ) {
//                if(array[j] > array[j+1]) {
//                    int tmp = array[j];
//                    array[j] = array[j+1];
//                    array[j+1] = tmp;
//                    flag = false;
//                }
//                if(flag == true) {
//                    return;
//                }
//            }
//        }
//    }
//
//    public static void main(String[] args) {
//        int [] array = new int[]{1,4,2,6,8};
//        Bubble(array);
//        for(int x : array) {
//            System.out.print(x+" ");
//        }
//    }

    //选择排序
//    public static void Selection_sort(int [] array) {
//        int left = 0;
//        int right = array.length-1;
//        while(left < right) {
//            int minIndex = left;
//            int maxIndex = left;
//            for(int i = left + 1; i <= right; i++) {
//                if(array[i] < array[minIndex]) {
//                    minIndex = i;
//                }
//                if(array[i] > array[maxIndex]) {
//                    maxIndex = i;
//                }
//            }
//            swap(array,minIndex,left);
//            if(maxIndex == left) {
//                maxIndex = minIndex;
//            }
//
//            swap(array,maxIndex,right);
//
//            left++;
//            right--;
//        }
//    }

    public static void swap(int [] array,int i,int j) {
        int tmp = array[j];
        array[j] = array[i];
        array[i] = tmp;
    }

    //选择排序111
//public static void selectSort(int [] array) {
//
//        for(int i = 0; i < array.length; i++) {
//        //拿出一个元素开始比较
//            int minLndex = i;
//            //从第二个元素开始比较
//            for(int j = i+1; j < array.length; j++) {
//                if(array[j] < array[minLndex]) {
//                   minLndex = j;
//                }
//            }
//            swap(array,i,minLndex);
//        }
//}

    //插入排序
    public static void insertSort(int [] array) {
        for(int i = 1; i < array.length; i++) {
            int tmp = array[i];
            int j = i-1;
            for(; j >= 0; j--) {
                if(array[j] > tmp) {
                    array[j+1] = array[j];
                }else {
                    break;
                }
            }
            array[j+1] = tmp;
        }
    }
    public static void main(String [] args) {
        int [] array = new int[]{3,6,7,8,4};
        //Selection_sort(array);
        //selectSort(array);
        insertSort(array);
        for(int x : array) {
            System.out.print(x+" ");
        }
    }

}